System, method and apparatus for embedded firmware code update

ABSTRACT

A wireless module is provided for wirelessly updating code to any appropriate peripheral device and may allow for wireless communication with the desired peripheral device to update an operating software code. The wireless module has the similar size, shape, and form factor as the current Memory Stick™. In one embodiment, the method of updating code to the wireless module and/or the desired peripheral devices includes providing a fail-safe code to the peripheral device, updating the peripheral device with a new code utilizing the wireless module, and executing a primary code for operation of the peripheral device. Further, the wireless module may be provided to any number of peripheral devices compatible with the Memory Stick™ removable data storage media. The wireless module is removably connected to the desired peripheral device and provides the peripheral device with a fail-safe system, method and apparatus for updating the embedded operational software code without recalling and servicing the peripheral device.

This application is related to and incorporates herein by reference U.S.patent application Ser. No. 09/______, of Akihiko Toyoshima, for SYSTEMAND METHOD FOR ACTIVATION OF A WIRELESS MODULE, filed concurrentherewith (Sony IPD 50R4257.01) U.S. patent application Ser. No.09/______, of Akhiko Toyoshima, for HOME NETWORK USING WIRELESS MODULE,filed ______, 2001 (Sony IPD 50P4257.02); U.S. patent application Ser.No. 09/______, of Akhiko Toyoshima, for MULTIPLE WIRELESS FORMAT PHONESYSTEM AND METHOD, filed concurrent herewith (Sony IPD No. 50P4257.03);U.S. patent application Ser. No. 09/______, of Akhiko Toyoshima, forWIRELESS MODEM MODULE SERVER SYSTEM, filed ______, 2001 (Sony IPD No.50P4257.04); U.S. patent application Ser. No. 09/______, of AkihikoToyoshima, for WIRELESS MODULE SECURITY SYSTEM AND METHOD, filedconcurrent herewith (Sony IPD 50R4257.05), U.S. patent application Ser.No. 09/______, of Akihiko Toyoshima, for A DEFAULT PORTAL SITE ACCESSWITH WIRELESS MODULE (Sony LPD 50R4257.06), filed ______, 2001; and U.S.patent application Ser. No. 09/928,582, of Baranowski, et al.; forWIRELESS MODULE, filed Aug. 13, 2001 (Sony IPD 50N3390), and ProvisionalPatent Application Ser. No. 60/240,001; of Juan, et al, for PORTABLEWIRELESS MODEM, filed Oct. 13, 2000 (Sony IPD 50P4257), the benefitwhose priority date is hereby claimed.

COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction of the patent document or thepatent disclosure, as it appears in the Patent and Trademark Officepatent file or records, but otherwise reserves all copyright rightswhatsoever.

FIELD OF THE INVENTION

This invention relates generally to the field of systems and methods forupdating an embedded operating software code. More particularly, thisinvention relates to a wireless module system and method for updating anembedded code.

BACKGROUND OF THE INVENTION

The need for portability of data has increased over the years, and hasspurred the development of removable memory devices. For example, MemoryStick™ is a removable data storage device made by Sony Corporation andis a recordable integrated circuit (IC) digital storage device having astorage capacity greater than a standard 3.5 inch floppy disk. Mostimportantly, Memory Stick™ is smaller than a stick of gum, verylightweight, and therefore ultra-portable. Recently, software code hasincreased in size and complexity for a peripheral device. For example, acellular phone utilizes an embedded software code which brings manyfancy and convenient functions to a user. However, due to the site andcomplexity of the software code, once a significant software code bug orflaw is detected the user may be unable to operate their peripheraldevice. Given the risks to manufactures and service operators ofperipheral devices, it would be desirable to provide fail-safe system,method and apparatus for updating the code without recalling andservicing peripheral devices.

SUMMARY OF THE INVENTION

In view of the foregoing, a wireless module is provided for wirelesslyupdating code to a peripheral device.

In particular, a wireless module, in one embodiment, has the similarsize, shape, and form factor as the current Memory Stick™. Also, thewireless module allows for wireless communication with digital storagefunctionality. In one embodiment, a method of updating code includesproviding a failsafe code to a peripheral device, updating theperipheral device with a new code utilizing the wireless module, andexecuting a primary code for operation of the peripheral device.

In a further embodiment, the wireless module may be provided to anynumber of peripheral devices compatible with the Memory Stick™ removabledata storage media.

These and other features and advantages of the invention will beunderstood upon the consideration of the following detailed descriptionof the invention and accompanying drawings. The features of theinvention believed to be novel are set forth with particularity in theappended claims. The invention itself however, both as to organizationand method of operation, together with further objects and advantagesthereof, may be best understood by reference to the followingdescription taken in conjunction with the accompanying drawing.

BRIEF DESCRIPTION OF THE DRAWING

The following detailed description, given by way of example, and notintended to limit the present invention solely thereto, will best beunderstood in conjunction with the accompanying drawings in which:

FIG. 1 is a block diagram of one embodiment of a wireless module.

FIG. 2 is a flow diagram illustrating the steps of one embodiment of amethod for updating code to a peripheral device utilizing the wirelessmodule.

FIG. 3 is a table illustrating one embodiment of incidental informationprovided when updating code.

FIG. 4 is a flow diagram illustrating a power-up procedure afterupdating code.

DETAILED DESCRIPTION OF THE INVENTION

While the present invention has been particularly shown and describedwith reference to an embodiment(s), it will be understood that variouschanges and modifications may be made without departing from the spiritand scope of this invention. It is intended that the appended claims beinterpreted to cover the embodiments described herein and allequivalents thereto.

Turning now to FIG. 1, one embodiment of a wireless module 200 is shown.Wireless module 200 includes an antenna 10 connected to a transceivercircuit 20. Transceiver circuit 20 includes a duplexer 30, a transmitter40, and a receiver 50. Transmitter 40 and receiver 50 of transceivercircuit 20 are connected to a baseband signal processor circuit 60.Baseband signal processor circuit 60 is connected to a microprocessor70. A Not AND FLexible Architecture for Shared memory (NAND FLASH)processor 80, a Dynamic Random Access Memory (DRAM) circuit 90, and auser interface 100 are also connected to microprocessor 70. In anotherembodiment, user interface 100 may include an input/output (I/O)interface (not shown) and a peripheral device (not shown) may beconnected to wireless module 200 through the I/O.

In operation, wireless module 200 receives a signal(s) containing datapackets through antenna 10 and forwards the received signals and datapackets to duplexer 30, through receiver 50, and to baseband signalprocessor circuit 60. The data packets/received signals will then beforwarded to microprocessor 70 and through user interface 100 and/or toNAND FLASH 80 and DRAM 90. For example, a wireless telephone, or anyother type of device or unit which can handle the data packets/receivedsignals, may contain wireless module 200 and user interface 100 may be aspeaker, microphone, key, and display for the wireless telephone.Wireless module 200 receives and transmits data packets/received signalsutilizing at least one wireless format selected from the groupconsisting of IS-95B, CDMA 2000 1X, CDMA 1X EV, CDMA ONE, Wideband CDMA,GSM, GPRS and EDGE. In another embodiment, the peripheral device mayengage in simultaneous transmission and reception of data packetsthrough the I/O, microprocessor 70, NAND FLASH 80, DRAM 90, basebandsignal processor circuit 60, and transceiver circuit 20.

FIG. 2 shows a flow diagram 210 illustrating the steps of one embodimentof a method for updating code utilizing wireless module 200 (shown inFIG. 1) to the peripheral device. Initially, the method for updatingcode includes providing a fail-safe code (not shown) to wireless module200. In one embodiment, the fail-safe code is stored in the peripheraldevice. In another embodiment, the fail-safe code is stored inside NANDFLASH 80 in wireless module 200. A step 220 of the method for updatingcode includes starting a code update process and includes utilizingwireless module 200 for wirelessly updating a new code (not shown). Inone embodiment, the new code is wirelessly transmitted utilizing atleast one wireless format selected from the group consisting of IS-95B,CDMA 2000 1X, CDMA 1X EV, CDMA ONE, Wideband CDMA, GSM, GPRS and EDGE.In one embodiment, once the new code is wirelessly transmitted it isstored in the peripheral device. In another embodiment, once the newcode is wirelessly transmitted the new code is then stored at least onceto DRAM 90 in wireless module 200. Step 220 then progresses to a step230 which illustrates that an error check (not shown) on the new codetakes place. If step 230 determines that no errors are found in the newcode, then the method for updating code further includes verifying thatthe new code is an error free new code (not shown) and progresses tostep 240 where storing the error free new code takes place. In oneembodiment, the error free new code is stored in the peripheral device.In another embodiment, the error free new code is stored to NAND FLASH80 in wireless module 200. In a further embodiment, incidentalinformation (shown in FIG. 3) is also stored to NAND FLASH 80. If step230 determines that errors were found in the new code, then the methodfor updating code fails in step 250 and a recovery action (not shown) isbegun until the method for updating code is successfully executed. Inone embodiment, the recovery action includes operating the peripheraldevice with the fail-safe code. In another embodiment, the recoveryaction includes operating wireless module 200 with the fail-safe code.In a further embodiment, the recovery action includes re-initiating step220 and starting the code update process.

Flow diagram 210 illustrates the conclusion to one embodiment of themethod for updating code by marking a primary code (not shown) in a step260. In one embodiment, the fail-safe code is marked as the primary codeand stored in NAND FLASH 80. In another embodiment, the error free newcode is marked as the primary code and stored in NAND FLASH 80 and thefail-safe code is un-marked as the primary code and also stored in NANDFLASH 80. In a further embodiment, allowing selection of the primarycode is provided such that even after the code update process, if a userdetects some fatal operation errors when using the peripheral device orwireless module 200, the user can manually switch the primary code tothe fail-safe code or any other code version stored in NAND FLASH 80until an improved code is available. The allowing selection of theprimary code also allows a manufacturer or an provider to automaticallyswitch the primary code to the fail-safe code or any other code versionas well, through wireless communication with wireless module 200 and/orthe peripheral device without the awareness or any operation of theuser.

FIG. 3 depicts a table 300 and one embodiment of incidental information310 provided when updating code utilizing wireless module 200 (shown inFIG. 1). As shown, in one embodiment, incidental information 310includes a version number 320, a stored address 330, a release date forupdated code (not shown) 340, as well as some notation as to primarycode mark 350. A system (not shown) for updating code includes wirelessmodule 200 which is configured to store the fail-safe code and theperipheral device which is in electronic data communication withwireless module 200. Wireless module 200 is further configured toreceive and transmit the updated code. The system for updating codefurther includes a base station (not shown) in electronic datacommunication with wireless module 200. The base station is configuredto transmit the updated code. In one embodiment, the system for updatingcode which includes wireless module 200 also includes NAND FLASH 80configured to store the fail-safe code. In one embodiment, wirelessmodule 200 further includes DRAM 90 in data communication with NANDFLASH 80, where DRAM 90 is configured to store at least once the updatedcode.

In one embodiment, NAND FLASH 80 is further configured to receive andstore the primary code, and DRAM 90 is further configured to receive andload the primary code. In one embodiment, the primary code is thefail-safe code, and in another embodiment the primary code is theupdated code. In a further embodiment, wireless module 200 furtherincludes NAND FLASH 80 which is configured to allow for selection of theprimary code. As shown in FIG. 3, a version 1.10 (360) is marked as theprimary code. Incidental information 310 includes stored address 330 andrelease date 340 of version 1.10 (360). Incidental information 310 maybe utilized by the user, the manufacturer, and/or the provider of theupdated code and/or wireless module 200 for the reason aforementioned.

FIG. 4 depicts a flow diagram 400 of one embodiment of a power-upprocedure 410 utilizing wireless module 200 (shown in FIG. 1). As shown,in one embodiment, power-up procedure 340 includes a power-up stage 420of wireless module 200 and/or the peripheral device. In one embodiment,once power-up stage 420 is completed, power-up procedure 410 progressesto a loading stage 430 where loading the primary code to DRAM 90 inwireless module 200 is accomplished. Once the primary code is loaded, inone embodiment, power-up procedure 410 progresses to an execution stage440 where executing the primary code for operation of wireless module200 and/or the peripheral device is further accomplished. In oneembodiment, once power-up procedure 410 is performed wireless module 200and/or the peripheral device will function properly and/or allow theuser, manufacturer, and/or provider to switch the primary code andre-initiating step 420 and restart power-up procedure 410. In a furtherembodiment, the restarting of power-up procedure 410 may be performed asmany times as possible depending upon the desire of the user,manufacturer, and/or service provider with a different primary code foroperation of wireless module 200 and/or the peripheral device.

Thus it is apparent that in accordance with the present invention, anapparatus that fully satisfies the objectives, aims and advantages isset forth above. While the invention has been described in conjunctionwith specific embodiments, it is evident that many alternatives,modifications, permutations and variations will become apparent to thoseskilled in the art in light of the foregoing description. Accordingly,it is intended that the present invention embrace all such alternatives,modifications and variations as fall within the scope of the appendedclaims.

1-35. (canceled)
 36. A method for updating code in a wirelesscommunication device (WCD), comprising: providing a first operationalcode to the WED, the first operational code being useful by the WCD foreffecting wireless communication; engaging a module with the WCD, themodule including a removable memory medium holding an updatedoperational code; and transferring the updated operational code from themodule to the WCD, wherein the memory medium includes a NAND FLASHdevice.
 37. A method for updating code in a wireless communicationdevice (WCD), comprising the acts of: providing a first operational codeto the WCD, the first operational code being useful by the WCD foreffecting wireless communication; engaging a module with the WCD, themodule including a removable memory medium holding an updatedoperational code; and transferring the updated operational code from themodule to the WCD, wherein the updated operational code is transmittedto the wireless module using at least one format selected from the groupconsisting of: IS-95B, CDMA 2000 1x, CDMA 1×EV, CDMA ONE, Wideband CDMA,GSM, GPRS, and EDGE.
 38. A method for updating code in a wirelesscommunication device (WCD), comprising the acts of: providing a firstoperational code to the WCD, the first operational code being useful bythe WCD for effecting wireless communication; engaging a module with theWCD, the module including a removable memory medium holding an updatedoperational code; transferring the updated operational code from themodule to the WCD; checking the updated operational code for errors; andonly if the updated operational code is verified as error free, usingthe updated operational code at the WCD in lieu of the first operationalcode for effecting wireless communication.
 39. A method for updatingcode in a wireless communication device (WCD), comprising the acts of:providing a first operational code to the WCD, the first operationalcode being useful by the WCD for effecting wireless communication;engaging a module with the WCD, the module including a removable memorymedium holding an updated operational code; transferring the updatedoperational code from the module to the WCD; and storing incidentalinformation related to the updated operational code to a NAND FLASHdevice in at least one of: the wireless module, and the wirelesstelephone.
 40. A method for updating code in a wireless communicationdevice (WCD), comprising the acts of: providing a first operational codeto the WCD, the first operational code being useful by the WCD foreffecting wireless communication; engaging a module with the WCD, themodule including a removable memory medium holding an updatedoperational code; transferring the updated operational code from themodule to the WCD; and storing both operational codes in the WCD forselective use thereof by the WCD.
 41. A wireless communication device(WCD), comprising: means for designating an initial operational code asa primary code to be used for wireless communication; means forsubsequently designating an updated operational code as the primary codeand undesignating the initial operational code as the primary code; andmeans for undesignating the updated operational code as the primary codeand redesignating the initial operational code as the primary code. 42.The device of claim 41, wherein the means for undesignating executes inresponse to a user selection of a primary code.
 43. The device of claim41, wherein the means for subsequently designating executes only if theupdated code is verified to be error-free.
 44. A method for updatingcode in a wireless communication device (WCD), comprising the acts ofproviding a first operational code to the WCD, the first operationalcode being error-checked and being useful by the WCD for effectingwireless communication; engaging a module with the WED, the moduleincluding a removable memory medium holding an updated operational code;and transferring the updated operational code from the module to theWCD.
 45. The method of claim 44, comprising wirelessly transmitting theupdated operational code to the module.
 46. The device of claim 41,wherein the updated operational code is received by means of at leastone format selected from the group consisting of: IS-95B, CDMA 2000 1x,CDMA 1x EV, CDMA ONE, Wideband CDMA, GSM, GPRS, and EDGE.
 47. The deviceof claim 41, comprising a storage means established by a NAND FLASHdevice.
 48. The device of claim 41, comprising a storage meansestablished by a DRAM device.